The present invention is directed to data transmission. More particularly, the present invention is directed to serial data transmission of variable length mini packets using statistical multiplexing.
Public telephone carriers offer many digital services that customers can subscribe to. Some digital services allow the customer to multiplex multiple telecommunication applications (e.g., a PBX and computer data equipment) located at the customer's premise onto a single access circuit.
One example of a single access circuit is a T1 circuit. A T1 circuit includes multiple frames, with each frame including twenty-four time slots, and each time slot including eight bits of information. A T1 circuit utilizes synchronous time division multiplexing ("TDM") to multiplex together information from multiple telecommunication applications. Synchronous TDM allocates time slots, or bandwidth, on a per application basis. However, this means that when an application is not using its assigned time slots during idle time, the time slots cannot be used by other applications. Therefore, time slots are frequently unused, and the usage efficiency of the T1 circuit is decreased.
Another example of a single access circuit is an Asynchronous Transfer Mode ("ATM") circuit. ATM utilizes a form of multiplexing known as statistical multiplexing ("STM"). With STM, bandwidth is shared among all telecommunication applications, and bandwidth is used by an application only when needed. Thus the bandwidth in an ATM circuit is typically more fully utilized than with a T1 circuit.
All information in ATM is carried in the form of fixed-length data units called cells. FIG. 1 illustrates the structure of an ATM cell 10. The ATM cell 10 consists of a five octet (one octet equals one byte) header 14 and a forty-eight octet payload 12.
Uncompressed voice typically is digitized at a rate of 64 Kbps. At that rate, it takes approximately six milliseconds to fill up the forty-eight octet payload 12 of ATM cell 10. The six millisecond delay is an acceptable delay in a typical voice telephony system.
An ATM circuit can be used more efficiently if the voice is compressed using one of many known compression techniques. However, compressing the voice increases the delay for filling up ATM cell 10. For example, using known methods (e.g., International Telecommunication Union ("ITU") standard G.729 (CS-ACELP) or ITU standard G.723.1 (MP-MLQ)), voice can be compressed to a rate of eight Kbps or below, with very good quality. At a rate of eight Kbps, it takes approximately forty-eight milliseconds to fill up the forty-eight octet payload 12 of ATM cell 10. A forty-eight millisecond delay is noticeable to a user of a voice telephony system, so it is an unacceptable delay. Therefore, it is desirable to have smaller packet sizes than forty-eight octets so that they can be filled more quickly and reduce delay.
In addition, when using compressed voice, the logical unit of octets that must be read by the receiving device is varied depending on the compression technique used. Specifically, with uncompressed voice, the logical unit is one octet (i.e., the receiving device can decode received compressed voice on a one octet basis). However, with compressed voice, the logical unit changes because typically the receiving unit must receive multiple octets to decode the voice. For example, when voice is compressed to eight Kbps using the G.723.1 standard, the logical unit is twenty-four octets. However, when voice is compressed using the G.729 standard, the logical unit is ten octets. Multiple ten octet units do not evenly fit into the forty-eight octet payload 12 of ATM cell 10. Therefore, it is desirable to have packets of variable size to accommodate different logical unit sizes.
One known method to reduce the delay of transmitting compressed voice and to accommodate varied logical units is to utilize small packets (referred to as "mini packets") of variable length and integrate them into ATM cells. This method utilizes an ATM Adaption Layer-2 ("AAL2") adaption layer. The AAL2 adaption layer is promulgated by ITU standard I.363.2.
FIG. 2 illustrates the AAL2 layer in comparison to the ATM layer. As shown in FIG. 2, the AAL2 layer 16 is the layer above the ATM cell layer 17. The AAL2 layer specifies how higher layer data (data layer 15), in this case mini packets, should be packed into ATM cells and transmitted on the physical layer 18 (i.e., the structure which carries the data, such as a fiber optic cable).
FIG. 3 illustrates the structure of an AAL2 mini packet. The mini packet 20 includes a three octet packet header 24 and a packet payload 22. Packet payload 22 can be one to sixty-four octets long.
AAL2 mini packets are packed onto ATM cells in a stream fashion (i.e., one after the other). FIG. 4 illustrates multiple AAL2 mini packets 36, 37, 38, 39 packed onto two ATM cells 30, 31. Each ATM cell 30, 31 in addition to including an ATM header 32, 33 must also include a message start pointer ("MSP") 34, 35. The MSP includes a six bit pointer, a one bit sequence number, and a one bit parity. The six bit pointer delineates the starting place of the next packet within the ATM cell. Mini packets can span multiple ATM cells. For example, in FIG. 4 mini packet 38 spans both ATM cell 30 and ATM cell 31.
One problem with the AAL2 method of using AAL2 packets within ATM cells to transmit variable mini packets is that a large overhead is incurred. This large overhead reduces transmission efficiency.
Specifically, at the packet level AAL2 requires a three octet mini packet header. At the cell level AAL2 requires six octets of overhead (a five octet ATM header and a one octet MSP). However, because an ATM cell can carry multiple packets, the six octets of overhead must be prorated among the packets. For an AAL2 packet whose payload is "L" octets long, the cell level overhead is (L+3)*(6/47). The total overhead is 3+(L+3)*(6/47). Table 1 gives some examples of the overhead incurred with AAL2 for various packet lengths:
TABLE 1 Packet Payload Overhead (octets) (octets) (percentage) 8 4.40 55.1% 16 5.43 33.9% 24 6.45 26.9% 32 7.47 23.3% 47 9.51 19.8%
Another problem is that ATM, in accordance with ATM standards, cannot operate at speeds slower than a T1 circuit (i.e., 1.544 Mbps). Therefore, the speed of AAL2, which is mapped onto an ATM cell, also cannot be operated at speeds slower than a T1 circuit.
Based on the foregoing, there is a need for a method and apparatus for serial data transmission of variable length mini packets using statistical multiplexing which incurs a smaller overhead than using the known combination of AAL2 and ATM, and further is able to operate at speeds slower than a T1 circuit.